package com.wang.tool.event;

/**
 * 订阅者
 *
 * @Author wangshaopeng
 * @Date 2022/6/11
 */
public interface EventListener<E> {

    /**
     * 订阅id
     * 一个事件下id不可重复
     *
     * @return 非空
     */
    String id();

    /**
     * 订阅的类型
     *
     * @return 非空
     */
    Class<E> subscribeEventType();

    /**
     * 处理
     */
    Object onEvent(E event) throws Exception;

}
